package br.net.atasacramental.notificacao.dao;
import java.util.Date;

import br.net.atasacramental.notificacao.model.ConfigNotificacao;
import br.net.atasacramental.notificacao.model.ConfigNotificacaoV;
import br.net.atasacramental.util.ConexaoDB;

import java.util.List;
import java.util.HashMap;
import java.util.Map;
/**
* @author alexandre.araujo
*/
public class ConfigNotificacaoDAO{
	private String[][] ordemP = {{"idConfigNotificacao", "desc"}};
	@SuppressWarnings("unchecked")
    public List<ConfigNotificacao> get() {
    	return (List<ConfigNotificacao>) ConexaoDB.get(ConfigNotificacao.class,true,1,100,null,ordemP);
    }
	public ConfigNotificacao getByIdConfigNotificacao(int idConfigNotificacao){
        return (ConfigNotificacao) ConexaoDB.getById(ConfigNotificacao.class,idConfigNotificacao);
    }

	@SuppressWarnings("unchecked")
    public List<ConfigNotificacao> getByDescricao(String descricao){		
		Map<String,Object> params = new HashMap<String, Object>();
     	params.put("descricao", descricao);
    	return (List<ConfigNotificacao>) ConexaoDB.get(ConfigNotificacao.class,true,1,100,params,ordemP);
    }
	
	@SuppressWarnings("unchecked")
    public List<ConfigNotificacao> getByMascara(String mascara){		
		Map<String,Object> params = new HashMap<String, Object>();
     	params.put("mascara", mascara);
    	return (List<ConfigNotificacao>) ConexaoDB.get(ConfigNotificacao.class,true,1,100,params,ordemP);
    }
	
	@SuppressWarnings("unchecked")
    public List<ConfigNotificacaoV> getByIdGrupo(int idGrupo){		
		Map<String,Object> params = new HashMap<String, Object>();
     	params.put("idGrupo", idGrupo);
    	return (List<ConfigNotificacaoV>) ConexaoDB.get(ConfigNotificacaoV.class,true,1,100,params,ordemP);
    }
	
	@SuppressWarnings("unchecked")
    public List<ConfigNotificacao> getByDtInicial(Date dtInicial){		
		Map<String,Object> params = new HashMap<String, Object>();
     	params.put("dtInicial", dtInicial);
    	return (List<ConfigNotificacao>) ConexaoDB.get(ConfigNotificacao.class,true,1,100,params,ordemP);
    }
	@SuppressWarnings("unchecked")
	public List<ConfigNotificacao> getByPeriodoDtInicial(Date DtaI,Date DtaF){
    	DtaF.setTime(DtaF.getTime()+86399999L);
		return (List<ConfigNotificacao>) ConexaoDB.getBetween(ConfigNotificacao.class,true,1,100,"dtInicial",DtaI,DtaF,ordemP);
    }
	
	@SuppressWarnings("unchecked")
    public List<ConfigNotificacao> getByDtFinal(Date dtFinal){		
		Map<String,Object> params = new HashMap<String, Object>();
     	params.put("dtFinal", dtFinal);
    	return (List<ConfigNotificacao>) ConexaoDB.get(ConfigNotificacao.class,true,1,100,params,ordemP);
    }
	@SuppressWarnings("unchecked")
	public List<ConfigNotificacao> getByPeriodoDtFinal(Date DtaI,Date DtaF){
    	DtaF.setTime(DtaF.getTime()+86399999L);
		return (List<ConfigNotificacao>) ConexaoDB.getBetween(ConfigNotificacao.class,true,1,100,"dtFinal",DtaI,DtaF,ordemP);
    }
	
	@SuppressWarnings("unchecked")
    public List<ConfigNotificacao> getByLimiteMax(int limiteMax){		
		Map<String,Object> params = new HashMap<String, Object>();
     	params.put("limiteMax", limiteMax);
    	return (List<ConfigNotificacao>) ConexaoDB.get(ConfigNotificacao.class,true,1,100,params,ordemP);
    }
	
    @SuppressWarnings("unchecked")
    public List<ConfigNotificacao> getByServicoList(String servicoList){		
		Map<String,Object> params = new HashMap<String, Object>();
     	params.put("servicoList", servicoList);
    	return (List<ConfigNotificacao>) ConexaoDB.get(ConfigNotificacao.class,true,1,100,params,ordemP);
    }
	
    @SuppressWarnings("unchecked")
    public List<ConfigNotificacao> getByServicoCount(String servicoCount){		
		Map<String,Object> params = new HashMap<String, Object>();
     	params.put("servicoCount", servicoCount);
    	return (List<ConfigNotificacao>) ConexaoDB.get(ConfigNotificacao.class,true,1,100,params,ordemP);
    }
	
    @SuppressWarnings("unchecked")
    public List<ConfigNotificacao> getByTpNotificacao(int tpNotificacao){		
		Map<String,Object> params = new HashMap<String, Object>();
     	params.put("tpNotificacao", tpNotificacao);
    	return (List<ConfigNotificacao>) ConexaoDB.get(ConfigNotificacao.class,true,1,100,params,ordemP);
    }
	

    public boolean insert(ConfigNotificacao cn){
        return ConexaoDB.insert(cn);
    }
    public boolean update(ConfigNotificacao cn){
        return ConexaoDB.update(cn);
    }
    public boolean delete(ConfigNotificacao cn){
        return ConexaoDB.delete(cn);
    }
}
